package com.time.admin.domain.service;

import com.time.admin.common.entity.PageResult;
import com.time.admin.domain.entity.CategoryBO;

import java.util.List;

/**
 * 管理后台分类管理服务领域层接口类
 *
 * @author: HuangQi
 * @date: Created in 11:33 2025/10/9
 * @description: 管理后台分类管理服务领域层接口
 */
public interface AdminCategoryDomainService {

    /**
     * 添加分类
     *
     * @param categoryBO 分类信息
     * @return 是否添加成功，true成功，false失败
     */
    Boolean add(CategoryBO categoryBO);

    /**
     * 更新分类
     *
     * @param categoryBO 更新分类的信息
     * @return 是否更新成功，true成功，false失败
     */
    Boolean update(CategoryBO categoryBO);

    /**
     * 删除分类
     *
     * @param id 分类id
     * @return 是否删除成功，true成功，false失败
     */
    Boolean delete(Long id);

    /**
     * 批量删除分类
     *
     * @param ids 分类id列表
     * @return 是否删除成功，true成功，false失败
     */
    Boolean batchDelete(List<Long> ids);

    /**
     * 查询所有一级分类
     *
     * @return 一级分类列表
     */
    List<CategoryBO> queryPrimaryCategory();

    /**
     * 根据一级分类查询二级分类
     *
     * @param categoryBO 一级分类信息
     * @return 二级分类列表
     */
    List<CategoryBO> queryCategoryByPrimary(CategoryBO categoryBO);

    /**
     * 查询所有分类，支持分页
     *
     * @param categoryBO 分类查询条件
     * @return 分类分页结果
     */
    PageResult<CategoryBO> queryAllCategory(CategoryBO categoryBO);
}
